﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ivy.Common.Framework.Base;
using System.Runtime.Serialization;

namespace Ivy.UserRegistration.Entity
{
    [Serializable]
    [DataContract]
    public class ProjectMemberMaster : DataEntityBase
    {
        #region  Variable & constant
        Int32 lProjectMemberKey = -1;
        Int32 lProjectMemberUserKey = -1;
        string lProjectMemberFirstName = string.Empty;
        string lProjectMemberLastName = string.Empty;
        string lProjectMemberPrimaryEmailID = string.Empty;
        string lProjectMemberCodePlexID = string.Empty;
        string lProjectMemberSkypeID = string.Empty;
        string lProjectMemberMicrosoftID = string.Empty;
        string lProjectMemberGoogleID = string.Empty;
        string lProjectMemberTimeZoneReference = string.Empty;
        string lProjectMemberTimeZoneName = string.Empty;
        string lProjectMemberTimeZoneAbbreviation = string.Empty;
        string lProjectMemberCountryName = string.Empty;
        string lProjectMemberCityName = string.Empty;
        Nullable<DateTime> lProjectMemberDateOfJoining = null;
        bool lProjectMemberIsMemberOfFacebook = false;
        #endregion  Variable & constant

        #region Constructor & Destructor
        public ProjectMemberMaster()
            : base()
        {
            this.Sys_DeleteType = DeleteType.SoftDeleteOnly;
        }
        #endregion Constructor & Destructor

        #region Properties
        [DataMember]
        public Int32 ProjectMemberKey
        {
            get
            {
                return lProjectMemberKey;
            }
            set
            {
                lProjectMemberKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public Int32 ProjectMemberUserKey
        {
            get
            {
                return lProjectMemberUserKey;
            }
            set
            {
                lProjectMemberUserKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberFirstName
        {
            get
            {
                return lProjectMemberFirstName;
            }
            set
            {
                lProjectMemberFirstName = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberLastName
        {
            get
            {
                return lProjectMemberLastName;
            }
            set
            {
                lProjectMemberLastName = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberPrimaryEmailID
        {
            get
            {
                return lProjectMemberPrimaryEmailID;
            }
            set
            {
                lProjectMemberPrimaryEmailID = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberCodePlexID
        {
            get
            {
                return lProjectMemberCodePlexID;
            }
            set
            {
                lProjectMemberCodePlexID = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberSkypeID
        {
            get
            {
                return lProjectMemberSkypeID;
            }
            set
            {
                lProjectMemberSkypeID = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberMicrosoftID
        {
            get
            {
                return lProjectMemberMicrosoftID;
            }
            set
            {
                lProjectMemberMicrosoftID = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberGoogleID
        {
            get
            {
                return lProjectMemberGoogleID;
            }
            set
            {
                lProjectMemberGoogleID = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberTimeZoneReference
        {
            get
            {
                return lProjectMemberTimeZoneReference;
            }
            set
            {
                lProjectMemberTimeZoneReference = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberTimeZoneName
        {
            get
            {
                return lProjectMemberTimeZoneName;
            }
            set
            {
                lProjectMemberTimeZoneName = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberTimeZoneAbbreviation
        {
            get
            {
                return lProjectMemberTimeZoneAbbreviation;
            }
            set
            {
                lProjectMemberTimeZoneAbbreviation = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberCountryName
        {
            get
            {
                return lProjectMemberCountryName;
            }
            set
            {
                lProjectMemberCountryName = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public string ProjectMemberCityName
        {
            get
            {
                return lProjectMemberCityName;
            }
            set
            {
                lProjectMemberCityName = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public Nullable<DateTime> ProjectMemberDateOfJoining
        {
            get
            {
                return lProjectMemberDateOfJoining;
            }
            set
            {
                lProjectMemberDateOfJoining = value;
                base.SetEntityStateChangeAttribute();
            }
        }

        [DataMember]
        public bool ProjectMemberIsMemberOfFacebook
        {
            get
            {
                return lProjectMemberIsMemberOfFacebook;
            }
            set
            {
                lProjectMemberIsMemberOfFacebook = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        #endregion Properties

        #region Public Methods
        #endregion Public Methods

        #region Events
        #endregion Events

        #region Private Methods
        #endregion Private Methods
    }
}
